package com.fjwt.gz.db.dto;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * <p>
 * 奖品配置信息表
 * </p>
 *
 * @author shiyonghao
 * @since 2025-04-09
 */
@Data
public class AwardSettingDTO {

    /**
     * 活动奖品ID
     */
    private Long awardSettingId;

    /**
     * 奖品id
     */
    private Long awardId;

    /**
     * 奖品类型  0卡券 1实物   2虚拟商品  3积分
     */
    private Integer awardType;

    /**
     * 周期性中奖次数限制(0不限制， 1限每日，2限每周，3限每月)
     */
    private Integer periodType;

    /**
     * 周期性限制中奖次数（period_type != 0时有效）
     */
    private Integer periodTimes;

    /**
     * 当前周期中奖次数限制类型
     */
    private Integer currentPeriodType;

    /**
     * 当前周期内中奖次数
     */
    private Integer currentPeriodTimes;

    /**
     * 是否限制领用客户（0否 1实名客户  2月资产等级客户  3季资产等级客户）
     */
    private Integer isLimitUser;

    /**
     * 限制派发客户内容（资产等级客户：0~5，可多选，以逗号分隔）
     */
    private String limitUserContent;

    /**
     * 是否开启回执（0否 1是）
     */
    private Integer isOpenReceipt;

    /**
     * 0 基础信息 1 手机银行 2 快捷支付 3 开卡 4 提额
     */
    private String receiptType;

    /**
     * 回执内容json（name 姓名, phone 手机号, idCard 身份证号,  bankCard银行卡号,   bankImg 银行卡照片,address 地址）
例如：{ {'name':'', isMust: true/false },  ...  }
     */
    private String receiptContent;

    /**
     * 是否限制可派发人员（0否，1是；默认0）
     */
    private Integer isAllocationUser;

    /**
     * 活动期间每个用户可领取最大数量（0代表不限制）
     */
    private Integer everyoneMaxNum;

    /**
     * 同一用户周期性次数限制参与(0不限制， 1限每日，2限每周，3限每月)
     */
    private Integer everyonePeriodType;

    /**
     * 同一用户周期性限制次数（everyone_period_type != 0时有效）
     */
    private Integer everyonePeriodTimes;

    /**
     * 是否限制可派发/激活机构（0否，1是；默认0）
     */
    private Integer isAllocation;

    /**
     * 核销后奖励积分
     */
    private Integer verifiedScore;

    /**
     * 积分过期规则类型：0 n天后过期，1 指定时间过期  2次季度首月月底失效 
     */
    private Integer scoreOverType;

    /**
     * 积分自领取后多少天过期
     */
    private Integer scoreOverDays;

    /**
     * 积分过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date scoreOverTime;

    /**
     * 是否需要激活（0否 1是，默认0）
     */
    private Integer isNeedActivate;

    /**
     * 激活说明
     */
    private String activateExplain;

    /**
     * 激活方式（1实名认证  2客户经理；可多选，以逗号分割）
     */
    private String activateType;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /**
     * 乐观锁
     */
    private Integer version;


}
